package types

import (
	"mall/common/globalkey"
)

type MediaInfo struct {
	Uid       *uint64 `json:"uid,optional,omitempty"`
	Id        *string `json:"id,optional,omitempty"`
	Url       *string `json:"url,optional"`
	Thumbnail *bool   `json:"thumbnail,optional,omitempty"`
	Order     *uint32 `json:"order,optional,omitempty"`
}

type KbEntryInfo struct {
	Id      *uint64         `json:"id"`
	Title   *string         `json:"title"`
	Slug    *string         `json:"slug"`
	Media    []*MediaInfo   `json:"media,omitempty"`
	Brand    []*KbEntryInfo `json:"brand,omitempty"`
	Year     *string        `json:"year,omitempty"`
}

type TopicInfo struct {
	Id          *uint64 `json:"id"`
	Title       *string `json:"title,omitempty"`
	Slug        *string `json:"slug,omitempty"`
	Status      *uint32 `json:"status"`
	StatusText  *string `json:"statusText,omitempty"`
	UpdatedAt   *string `json:"updatedAt"`
	ReplyCount  *uint32 `json:"replyCount"`
}

type ReplyInfo struct {
	Id          *uint64    `json:"id"`
	ContentHtml *string    `json:"contentHtml,omitempty"`
	Status      *uint32    `json:"status"`
	StatusText  *string    `json:"statusText,omitempty"`
	UpdatedAt   *string    `json:"updatedAt"`
	Topic       *TopicInfo `json:"topic,omitempty"`
}

type PhotoPostInfo struct {
	Id         *uint64      `json:"id"`
	ParentId   *uint64      `json:"parentId,omitempty"`
	Parent     *KbEntryInfo `json:"parent,omitempty"`
	Photos     []*MediaInfo `json:"photos,omitempty"`
	Status     *uint32      `json:"status,omitempty"`
	StatusText *string      `json:"statusText"`
}

type PostInfo struct {
	Id         *uint64      `json:"id"`
	ParentId   *uint64      `json:"parentId,omitempty"`
	Parent     *KbEntryInfo `json:"parent,omitempty"`
	Photos     []*MediaInfo `json:"photos,omitempty"`
	Grade      *string      `json:"grade,omitempty"`
	Status     *uint32      `json:"status,omitempty"`
	StatusText *string      `json:"statusText,omitempty"`
}

func GetStatusText(status int32) (res string) {
	switch status {
	case globalkey.StatusApproved: // 已通过
		res = "aproved"
	case globalkey.StatusPending: // 待审核
		res = "pending"
	case globalkey.StatusRejected: // 已驳回
		res = "rejected"
	case globalkey.StatusDeleted: // 用户已删除
		res = "deleted"
	case globalkey.StatusCheckSuccess: // 待审核
		res = "pending"
	case globalkey.StatusDraft: // 草稿
		res = "draft"
	}

	return
}
